/*
 * Klasa reprezentuje jeden punkt3d. Ma możliwość posortowania punktów wg 
 * odleglosci w plnie XY i XYZ.
 */

package trojkatyR;

import java.util.*;
import javax.vecmath.Point3d;

/**
 *
 * @author mignat
 */
public class TPointR extends Point3d implements Comparable<TPointR> {
    
    //public static TCompXY fSortXY;
    private static boolean isXY = true; //flaga, jak sortować (albo XY, albo po Z)
    
    TPointR(double aX, double aY, double aZ) { 
        super(aX, aY, aZ); 
        //fSortXY = new TCompXY();
    } //koniec konstruktora

    public int compareTo(TPointR o) {
        int out;
        if (isXY) {//cz. sortuję po plnie XY
            if (Math.sqrt(Math.pow(x-o.x,2)+Math.pow(y-o.y,2)) <0) out =1;
            else if (Math.sqrt(Math.pow(x-o.x,2)+Math.pow(y-o.y,2)) >0) out=-1;
            else out=0;
            
        } else {
            if (z-o.z <0) out =1;
            else if (z-o.z >0) out =-1;
            else out = 0;
        } //koniec if-else
        
        return out;
    } //koniec compareTo

    public static void setXY(boolean aF) {isXY = aF; }
    
    
    /*
    class TCompXY implements Comparator<Point3d> {

        public int compare(Point3d o1, Point3d o2) {
            if (Math.sqrt(Math.pow(o2.x-o1.x, 2) + Math.pow(o2.y-o1.y, 2)) <0) 
                return 1;
            else if (Math.sqrt(Math.pow(o2.x-o1.x, 2) + Math.pow(o2.y-o1.y, 2)) >0) 
                return -1;
            else return 0;
        } //koniec compare
    } //koniec klasy TCompXY
    */
} //koniec klasy TPointR
